<?php
/**
 * @author		João Batista Neto
 * @brief		Objetos que representam cada tipo do retorno da API
 * @package		dso.buscape.result.type
 */

require_once 'dso/buscape/result/type/BuscapeLeaf.php';

/**
 * @brief		Thumbnail
 * @details		Thumbnail de produtos ou categorias BuscaPé
 * @class		BuscapeThumbnail
 * @ingroup		Types
 */
class BuscapeThumbnail extends BuscapeLeaf {
	/**
	 * @brief	Endereço da imagem
	 * @var		string
	 */
	private $url;

	/**
	 * @brief	Cria uma instância do objeto com os argumentos passados
	 * @param	$args array Lista de argumentos que serão utilizados para criação do objeto
	 * @return	BuscapeContact
	 */
	public static function createInstance( array $args ){
		$thumbnail = new BuscapeThumbnail();

		foreach ( $args as $property => $value ){
			if ( !empty( $value ) ){
				if ( $property == 'url' && !filter_var( $value , FILTER_VALIDATE_URL ) ){
					throw new InvalidArgumentException( sprintf( 'A URL "%s" é inválida.' , $value ) );
				}

				$thumbnail->$property = $value;
			}
		}

		return $thumbnail;
	}

	/**
	 * @brief	Recupera a URL da imagem
	 * @return	string
	 */
	public function getURL(){
		return $this->url;
	}
}